<?php
namespace Pinenut;

/**
 * Заготовка контейнера для определения конфигурации
 * 
 * Почему не массив, возвращаемый в require? 
 * Потому что обёрнутый в класс массив вернуть в 100 раз быстрей даже закешированного 
 * инклюда.
 * 
 * TODO: В последствии предполагаю использовать генерацию файлов конфигурации 
 * по аннотациям используя функцию var_export
 * 
 * @author Kosh
 *
 */
abstract class Config {
	
	/**
	 * Конфигурация в виде вложенного массива 
	 * @var array
	 */
	static $config = array();
	
	static $initialize = false;
	
	static function get($path = null) {

		if (!static::$initialize) {
			static::initialize();
			static::$initialize = true;
		}
		
		if (null !== $path) {
			return isset(static::$config[$path])?static::$config[$path]:null;
		} else {
			return static::$config;
		}
	}
	
	/**
	 * инициализируем массив конфы, если нужно
	 */
	static function initialize() {}
}